#pragma once
#ifndef SDEF_WOLFINST
#define SDEF_WOLFINST

#include <SypX/SypX.h>
#include "Instance.h"

namespace SheepDefence
{
	class SheepInstance;
	class Wolf;

	class WolfInstance : public Instance
	{
	
	public:

		struct sheepComparator
		{
			bool operator()(std::pair<SheepInstance*, float> a, std::pair<SheepInstance*, float> b)
			{
				return a.second < b.second;
			}
		};

		Wolf* actor;
		float hp;		
		SheepInstance* target;

		int spawn;
		float start_x, start_y;

		std::vector< std::pair<SheepInstance*, float> > mySheep;

		// Default constructor
		WolfInstance();

		~WolfInstance();

		WolfInstance(SypX::FileInputStream&, Wolf*, Level*);
		WolfInstance(Wolf*, Level* level, float x, float y, int angle);

		void boundaryCheck(Actor* actor);
		void act(float);
		void respond();
		bool collide(Instance*);

		Actor* getActor();
	};
}

#endif